<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<title>OpenCV: cv::detail::tracking::tbm::ITrackerByMatching Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon" />
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<script type="text/javascript" src="../../tutorial-utils.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
   &#160;<span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../d2/daf/namespacecv_1_1detail.html">detail</a></li><li class="navelem"><a class="el" href="../../de/d44/namespacecv_1_1detail_1_1tracking.html">tracking</a></li><li class="navelem"><a class="el" href="../../dc/d5e/namespacecv_1_1detail_1_1tracking_1_1tbm.html">tbm</a></li><li class="navelem"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html">ITrackerByMatching</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="../../d0/dbb/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::detail::tracking::tbm::ITrackerByMatching Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Tracker-by-Matching algorithm interface.  
 <a href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#details">More...</a></p>

<p><code>#include &lt;opencv2/tracking/tracking_by_matching.hpp&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:af25ede2ae413417d2649c09093b521eb"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#af25ede2ae413417d2649c09093b521eb">Descriptor</a> = std::shared_ptr&lt; <a class="el" href="../../d3/daa/classcv_1_1detail_1_1tracking_1_1tbm_1_1IImageDescriptor.html">IImageDescriptor</a> &gt;</td></tr>
<tr class="separator:af25ede2ae413417d2649c09093b521eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0f6285f7029ed0b799c2d7209ab0c7b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#ac0f6285f7029ed0b799c2d7209ab0c7b">Distance</a> = std::shared_ptr&lt; <a class="el" href="../../db/db4/classcv_1_1detail_1_1tracking_1_1tbm_1_1IDescriptorDistance.html">IDescriptorDistance</a> &gt;</td></tr>
<tr class="separator:ac0f6285f7029ed0b799c2d7209ab0c7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aba1dd74fffb01b715a8c66d7d9946644"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#aba1dd74fffb01b715a8c66d7d9946644">~ITrackerByMatching</a> ()</td></tr>
<tr class="memdesc:aba1dd74fffb01b715a8c66d7d9946644"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor for the tracker.  <a href="#aba1dd74fffb01b715a8c66d7d9946644">More...</a><br /></td></tr>
<tr class="separator:aba1dd74fffb01b715a8c66d7d9946644"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07201a9a6b40c71015db23f78e1601dc"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#a07201a9a6b40c71015db23f78e1601dc">count</a> () const =0</td></tr>
<tr class="memdesc:a07201a9a6b40c71015db23f78e1601dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns number of counted people.  <a href="#a07201a9a6b40c71015db23f78e1601dc">More...</a><br /></td></tr>
<tr class="separator:a07201a9a6b40c71015db23f78e1601dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8003cfc434fca1d2ddf97558ba84aca"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#af25ede2ae413417d2649c09093b521eb">Descriptor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#ab8003cfc434fca1d2ddf97558ba84aca">descriptorFast</a> () const =0</td></tr>
<tr class="memdesc:ab8003cfc434fca1d2ddf97558ba84aca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast descriptor getter.  <a href="#ab8003cfc434fca1d2ddf97558ba84aca">More...</a><br /></td></tr>
<tr class="separator:ab8003cfc434fca1d2ddf97558ba84aca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b5e2161e324f73c52fe1de84b4670e3"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#af25ede2ae413417d2649c09093b521eb">Descriptor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#a2b5e2161e324f73c52fe1de84b4670e3">descriptorStrong</a> () const =0</td></tr>
<tr class="memdesc:a2b5e2161e324f73c52fe1de84b4670e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Strong descriptor getter.  <a href="#a2b5e2161e324f73c52fe1de84b4670e3">More...</a><br /></td></tr>
<tr class="separator:a2b5e2161e324f73c52fe1de84b4670e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea32b183c12bd1293f54dc203544ec31"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#ac0f6285f7029ed0b799c2d7209ab0c7b">Distance</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#aea32b183c12bd1293f54dc203544ec31">distanceFast</a> () const =0</td></tr>
<tr class="memdesc:aea32b183c12bd1293f54dc203544ec31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast distance getter.  <a href="#aea32b183c12bd1293f54dc203544ec31">More...</a><br /></td></tr>
<tr class="separator:aea32b183c12bd1293f54dc203544ec31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8324ef7fdebda89ffd749a9c1a6e284"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#ac0f6285f7029ed0b799c2d7209ab0c7b">Distance</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#ae8324ef7fdebda89ffd749a9c1a6e284">distanceStrong</a> () const =0</td></tr>
<tr class="memdesc:ae8324ef7fdebda89ffd749a9c1a6e284"><td class="mdescLeft">&#160;</td><td class="mdescRight">Strong distance getter.  <a href="#ae8324ef7fdebda89ffd749a9c1a6e284">More...</a><br /></td></tr>
<tr class="separator:ae8324ef7fdebda89ffd749a9c1a6e284"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd884c683d53d6a0840b01f6ff9ba6e8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#afd884c683d53d6a0840b01f6ff9ba6e8">drawActiveTracks</a> (const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &amp;frame)=0</td></tr>
<tr class="memdesc:afd884c683d53d6a0840b01f6ff9ba6e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws active tracks on a given frame.  <a href="#afd884c683d53d6a0840b01f6ff9ba6e8">More...</a><br /></td></tr>
<tr class="separator:afd884c683d53d6a0840b01f6ff9ba6e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa294882a01629ebad3654053e0a9069d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#aa294882a01629ebad3654053e0a9069d">dropForgottenTrack</a> (size_t track_id)=0</td></tr>
<tr class="memdesc:aa294882a01629ebad3654053e0a9069d"><td class="mdescLeft">&#160;</td><td class="mdescRight">dropForgottenTrack Check that the track was lost too many frames ago and removes it frm memory.  <a href="#aa294882a01629ebad3654053e0a9069d">More...</a><br /></td></tr>
<tr class="separator:aa294882a01629ebad3654053e0a9069d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac89639829565ea5d13ed161f077c384e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#ac89639829565ea5d13ed161f077c384e">dropForgottenTracks</a> ()=0</td></tr>
<tr class="memdesc:ac89639829565ea5d13ed161f077c384e"><td class="mdescLeft">&#160;</td><td class="mdescRight">dropForgottenTracks Removes tracks from memory that were lost too many frames ago.  <a href="#ac89639829565ea5d13ed161f077c384e">More...</a><br /></td></tr>
<tr class="separator:ac89639829565ea5d13ed161f077c384e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acebbc0b7882563b2c087de9b9a57f1b5"><td class="memItemLeft" align="right" valign="top">virtual std::unordered_map&lt; size_t, std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga1e83eafb2d26b3c93f09e8338bcab192">cv::Point</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#acebbc0b7882563b2c087de9b9a57f1b5">getActiveTracks</a> () const =0</td></tr>
<tr class="memdesc:acebbc0b7882563b2c087de9b9a57f1b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get active tracks to draw.  <a href="#acebbc0b7882563b2c087de9b9a57f1b5">More...</a><br /></td></tr>
<tr class="separator:acebbc0b7882563b2c087de9b9a57f1b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7792d41274c508df1e2adbf005390361"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#a7792d41274c508df1e2adbf005390361">isTrackForgotten</a> (size_t id) const =0</td></tr>
<tr class="memdesc:a7792d41274c508df1e2adbf005390361"><td class="mdescLeft">&#160;</td><td class="mdescRight">isTrackForgotten returns true if track is forgotten.  <a href="#a7792d41274c508df1e2adbf005390361">More...</a><br /></td></tr>
<tr class="separator:a7792d41274c508df1e2adbf005390361"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1069e663f07fb40ba01051607b5e8f85"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#a1069e663f07fb40ba01051607b5e8f85">isTrackValid</a> (size_t track_id) const =0</td></tr>
<tr class="memdesc:a1069e663f07fb40ba01051607b5e8f85"><td class="mdescLeft">&#160;</td><td class="mdescRight">isTrackValid Checks whether track is valid (duration &gt; threshold).  <a href="#a1069e663f07fb40ba01051607b5e8f85">More...</a><br /></td></tr>
<tr class="separator:a1069e663f07fb40ba01051607b5e8f85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2dc7d427b8a2eec257b7f28fe712c752"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="../../d7/d92/structcv_1_1detail_1_1tracking_1_1tbm_1_1TrackerParams.html">TrackerParams</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#a2dc7d427b8a2eec257b7f28fe712c752">params</a> () const =0</td></tr>
<tr class="memdesc:a2dc7d427b8a2eec257b7f28fe712c752"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pipeline parameters getter.  <a href="#a2dc7d427b8a2eec257b7f28fe712c752">More...</a><br /></td></tr>
<tr class="separator:a2dc7d427b8a2eec257b7f28fe712c752"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b9e76b4af6ff7700f23c0eae084e5aa"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#a4b9e76b4af6ff7700f23c0eae084e5aa">process</a> (const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &amp;frame, const <a class="el" href="../../dc/d5e/namespacecv_1_1detail_1_1tracking_1_1tbm.html#ab341a7342c7d95812f63c419e53a62b1">TrackedObjects</a> &amp;detections, <a class="el" href="../../d2/d75/namespacecv.html#a95a13348625f7bf50cc851d1fddea33b">uint64_t</a> timestamp)=0</td></tr>
<tr class="memdesc:a4b9e76b4af6ff7700f23c0eae084e5aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process given frame.  <a href="#a4b9e76b4af6ff7700f23c0eae084e5aa">More...</a><br /></td></tr>
<tr class="separator:a4b9e76b4af6ff7700f23c0eae084e5aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fc042059b9168a22f444a63928917d7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#a9fc042059b9168a22f444a63928917d7">setDescriptorFast</a> (const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#af25ede2ae413417d2649c09093b521eb">Descriptor</a> &amp;val)=0</td></tr>
<tr class="memdesc:a9fc042059b9168a22f444a63928917d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast descriptor setter.  <a href="#a9fc042059b9168a22f444a63928917d7">More...</a><br /></td></tr>
<tr class="separator:a9fc042059b9168a22f444a63928917d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97f5db32a1f821277b3316db5cb84d01"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#a97f5db32a1f821277b3316db5cb84d01">setDescriptorStrong</a> (const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#af25ede2ae413417d2649c09093b521eb">Descriptor</a> &amp;val)=0</td></tr>
<tr class="memdesc:a97f5db32a1f821277b3316db5cb84d01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Strong descriptor setter.  <a href="#a97f5db32a1f821277b3316db5cb84d01">More...</a><br /></td></tr>
<tr class="separator:a97f5db32a1f821277b3316db5cb84d01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac4ea41cdc479c86b4d9ef6ffc5ac1dd"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#aac4ea41cdc479c86b4d9ef6ffc5ac1dd">setDistanceFast</a> (const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#ac0f6285f7029ed0b799c2d7209ab0c7b">Distance</a> &amp;val)=0</td></tr>
<tr class="memdesc:aac4ea41cdc479c86b4d9ef6ffc5ac1dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast distance setter.  <a href="#aac4ea41cdc479c86b4d9ef6ffc5ac1dd">More...</a><br /></td></tr>
<tr class="separator:aac4ea41cdc479c86b4d9ef6ffc5ac1dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7dd2192bd2467af5de97cdcbb65bf9a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#af7dd2192bd2467af5de97cdcbb65bf9a">setDistanceStrong</a> (const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#ac0f6285f7029ed0b799c2d7209ab0c7b">Distance</a> &amp;val)=0</td></tr>
<tr class="memdesc:af7dd2192bd2467af5de97cdcbb65bf9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Strong distance setter.  <a href="#af7dd2192bd2467af5de97cdcbb65bf9a">More...</a><br /></td></tr>
<tr class="separator:af7dd2192bd2467af5de97cdcbb65bf9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0d440dabc9e27542f66c13f1cd6a051"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#ac0d440dabc9e27542f66c13f1cd6a051">setParams</a> (const <a class="el" href="../../d7/d92/structcv_1_1detail_1_1tracking_1_1tbm_1_1TrackerParams.html">TrackerParams</a> &amp;<a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#a2dc7d427b8a2eec257b7f28fe712c752">params</a>)=0</td></tr>
<tr class="memdesc:ac0d440dabc9e27542f66c13f1cd6a051"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pipeline parameters setter.  <a href="#ac0d440dabc9e27542f66c13f1cd6a051">More...</a><br /></td></tr>
<tr class="separator:ac0d440dabc9e27542f66c13f1cd6a051"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ace2d6c94c0ae94f0361e5166fbd268"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="../../dc/d5e/namespacecv_1_1detail_1_1tracking_1_1tbm.html#ab341a7342c7d95812f63c419e53a62b1">TrackedObjects</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#a7ace2d6c94c0ae94f0361e5166fbd268">trackedDetections</a> () const =0</td></tr>
<tr class="memdesc:a7ace2d6c94c0ae94f0361e5166fbd268"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get tracked detections.  <a href="#a7ace2d6c94c0ae94f0361e5166fbd268">More...</a><br /></td></tr>
<tr class="separator:a7ace2d6c94c0ae94f0361e5166fbd268"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf8286abfce9b6c9db32794a324474c7"><td class="memItemLeft" align="right" valign="top">virtual const std::unordered_map&lt; size_t, <a class="el" href="../../d7/d20/classcv_1_1detail_1_1tracking_1_1tbm_1_1Track.html">Track</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#abf8286abfce9b6c9db32794a324474c7">tracks</a> () const =0</td></tr>
<tr class="memdesc:abf8286abfce9b6c9db32794a324474c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">tracks Returns all tracks including forgotten (lost too many frames ago).  <a href="#abf8286abfce9b6c9db32794a324474c7">More...</a><br /></td></tr>
<tr class="separator:abf8286abfce9b6c9db32794a324474c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Tracker-by-Matching algorithm interface. </p>
<p>This class is implementation of tracking-by-matching system. It uses two different appearance measures to compute affinity between bounding boxes: some fast descriptor and some strong descriptor. Each time the assignment problem is solved. The assignment problem in our case is how to establish correspondence between existing tracklets and recently detected objects. First step is to compute an affinity matrix between tracklets and detections. The affinity equals to appearance_affinity * motion_affinity * shape_affinity. Where appearance is 1 - distance(tracklet_fast_dscr, detection_fast_dscr). Second step is to solve the assignment problem using Kuhn-Munkres algorithm. If correspondence between some tracklet and detection is established with low confidence (affinity) then the strong descriptor is used to determine if there is correspondence between tracklet and detection. </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="af25ede2ae413417d2649c09093b521eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af25ede2ae413417d2649c09093b521eb">&#9670;&nbsp;</a></span>Descriptor</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#af25ede2ae413417d2649c09093b521eb">cv::detail::tracking::tbm::ITrackerByMatching::Descriptor</a> =  std::shared_ptr&lt;<a class="el" href="../../d3/daa/classcv_1_1detail_1_1tracking_1_1tbm_1_1IImageDescriptor.html">IImageDescriptor</a>&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ac0f6285f7029ed0b799c2d7209ab0c7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0f6285f7029ed0b799c2d7209ab0c7b">&#9670;&nbsp;</a></span>Distance</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#ac0f6285f7029ed0b799c2d7209ab0c7b">cv::detail::tracking::tbm::ITrackerByMatching::Distance</a> =  std::shared_ptr&lt;<a class="el" href="../../db/db4/classcv_1_1detail_1_1tracking_1_1tbm_1_1IDescriptorDistance.html">IDescriptorDistance</a>&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aba1dd74fffb01b715a8c66d7d9946644"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba1dd74fffb01b715a8c66d7d9946644">&#9670;&nbsp;</a></span>~ITrackerByMatching()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual cv::detail::tracking::tbm::ITrackerByMatching::~ITrackerByMatching </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor for the tracker. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a07201a9a6b40c71015db23f78e1601dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a07201a9a6b40c71015db23f78e1601dc">&#9670;&nbsp;</a></span>count()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t cv::detail::tracking::tbm::ITrackerByMatching::count </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns number of counted people. </p>
<dl class="section return"><dt>Returns</dt><dd>a number of counted people. </dd></dl>

</div>
</div>
<a id="ab8003cfc434fca1d2ddf97558ba84aca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8003cfc434fca1d2ddf97558ba84aca">&#9670;&nbsp;</a></span>descriptorFast()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#af25ede2ae413417d2649c09093b521eb">Descriptor</a>&amp; cv::detail::tracking::tbm::ITrackerByMatching::descriptorFast </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Fast descriptor getter. </p>
<dl class="section return"><dt>Returns</dt><dd>Fast descriptor used in pipeline. </dd></dl>

</div>
</div>
<a id="a2b5e2161e324f73c52fe1de84b4670e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b5e2161e324f73c52fe1de84b4670e3">&#9670;&nbsp;</a></span>descriptorStrong()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#af25ede2ae413417d2649c09093b521eb">Descriptor</a>&amp; cv::detail::tracking::tbm::ITrackerByMatching::descriptorStrong </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Strong descriptor getter. </p>
<dl class="section return"><dt>Returns</dt><dd>Strong descriptor used in pipeline. </dd></dl>

</div>
</div>
<a id="aea32b183c12bd1293f54dc203544ec31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea32b183c12bd1293f54dc203544ec31">&#9670;&nbsp;</a></span>distanceFast()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#ac0f6285f7029ed0b799c2d7209ab0c7b">Distance</a>&amp; cv::detail::tracking::tbm::ITrackerByMatching::distanceFast </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Fast distance getter. </p>
<dl class="section return"><dt>Returns</dt><dd>Fast distance used in pipeline. </dd></dl>

</div>
</div>
<a id="ae8324ef7fdebda89ffd749a9c1a6e284"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8324ef7fdebda89ffd749a9c1a6e284">&#9670;&nbsp;</a></span>distanceStrong()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#ac0f6285f7029ed0b799c2d7209ab0c7b">Distance</a>&amp; cv::detail::tracking::tbm::ITrackerByMatching::distanceStrong </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Strong distance getter. </p>
<dl class="section return"><dt>Returns</dt><dd>Strong distance used in pipeline. </dd></dl>

</div>
</div>
<a id="afd884c683d53d6a0840b01f6ff9ba6e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd884c683d53d6a0840b01f6ff9ba6e8">&#9670;&nbsp;</a></span>drawActiveTracks()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> cv::detail::tracking::tbm::ITrackerByMatching::drawActiveTracks </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &amp;&#160;</td>
          <td class="paramname"><em>frame</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Draws active tracks on a given frame. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">frame</td><td>Colored image (CV_8UC3). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Colored image with drawn active tracks. </dd></dl>

</div>
</div>
<a id="aa294882a01629ebad3654053e0a9069d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa294882a01629ebad3654053e0a9069d">&#9670;&nbsp;</a></span>dropForgottenTrack()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::detail::tracking::tbm::ITrackerByMatching::dropForgottenTrack </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>track_id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>dropForgottenTrack Check that the track was lost too many frames ago and removes it frm memory. </p>

</div>
</div>
<a id="ac89639829565ea5d13ed161f077c384e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac89639829565ea5d13ed161f077c384e">&#9670;&nbsp;</a></span>dropForgottenTracks()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::detail::tracking::tbm::ITrackerByMatching::dropForgottenTracks </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>dropForgottenTracks Removes tracks from memory that were lost too many frames ago. </p>

</div>
</div>
<a id="acebbc0b7882563b2c087de9b9a57f1b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acebbc0b7882563b2c087de9b9a57f1b5">&#9670;&nbsp;</a></span>getActiveTracks()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::unordered_map&lt;size_t, std::vector&lt;<a class="el" href="../../dc/d84/group__core__basic.html#ga1e83eafb2d26b3c93f09e8338bcab192">cv::Point</a>&gt; &gt; cv::detail::tracking::tbm::ITrackerByMatching::getActiveTracks </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get active tracks to draw. </p>
<dl class="section return"><dt>Returns</dt><dd>Active tracks. </dd></dl>

</div>
</div>
<a id="a7792d41274c508df1e2adbf005390361"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7792d41274c508df1e2adbf005390361">&#9670;&nbsp;</a></span>isTrackForgotten()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool cv::detail::tracking::tbm::ITrackerByMatching::isTrackForgotten </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>isTrackForgotten returns true if track is forgotten. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">id</td><td><a class="el" href="../../d7/d20/classcv_1_1detail_1_1tracking_1_1tbm_1_1Track.html" title="The Track class describes tracks. ">Track</a> ID. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if track is forgotten. </dd></dl>

</div>
</div>
<a id="a1069e663f07fb40ba01051607b5e8f85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1069e663f07fb40ba01051607b5e8f85">&#9670;&nbsp;</a></span>isTrackValid()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool cv::detail::tracking::tbm::ITrackerByMatching::isTrackValid </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>track_id</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>isTrackValid Checks whether track is valid (duration &gt; threshold). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">track_id</td><td>Index of checked track. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if track duration exceeds some predefined value. </dd></dl>

</div>
</div>
<a id="a2dc7d427b8a2eec257b7f28fe712c752"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2dc7d427b8a2eec257b7f28fe712c752">&#9670;&nbsp;</a></span>params()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="../../d7/d92/structcv_1_1detail_1_1tracking_1_1tbm_1_1TrackerParams.html">TrackerParams</a>&amp; cv::detail::tracking::tbm::ITrackerByMatching::params </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Pipeline parameters getter. </p>
<dl class="section return"><dt>Returns</dt><dd>Parameters of pipeline. </dd></dl>

</div>
</div>
<a id="a4b9e76b4af6ff7700f23c0eae084e5aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b9e76b4af6ff7700f23c0eae084e5aa">&#9670;&nbsp;</a></span>process()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::detail::tracking::tbm::ITrackerByMatching::process </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">cv::Mat</a> &amp;&#160;</td>
          <td class="paramname"><em>frame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="../../dc/d5e/namespacecv_1_1detail_1_1tracking_1_1tbm.html#ab341a7342c7d95812f63c419e53a62b1">TrackedObjects</a> &amp;&#160;</td>
          <td class="paramname"><em>detections</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d2/d75/namespacecv.html#a95a13348625f7bf50cc851d1fddea33b">uint64_t</a>&#160;</td>
          <td class="paramname"><em>timestamp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Process given frame. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">frame</td><td>Colored image (CV_8UC3). </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">detections</td><td>Detected objects on the frame. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timestamp</td><td>Timestamp must be positive and measured in milliseconds </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a9fc042059b9168a22f444a63928917d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9fc042059b9168a22f444a63928917d7">&#9670;&nbsp;</a></span>setDescriptorFast()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::detail::tracking::tbm::ITrackerByMatching::setDescriptorFast </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#af25ede2ae413417d2649c09093b521eb">Descriptor</a> &amp;&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Fast descriptor setter. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Fast descriptor used in pipeline. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a97f5db32a1f821277b3316db5cb84d01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97f5db32a1f821277b3316db5cb84d01">&#9670;&nbsp;</a></span>setDescriptorStrong()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::detail::tracking::tbm::ITrackerByMatching::setDescriptorStrong </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#af25ede2ae413417d2649c09093b521eb">Descriptor</a> &amp;&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Strong descriptor setter. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Strong descriptor used in pipeline. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aac4ea41cdc479c86b4d9ef6ffc5ac1dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac4ea41cdc479c86b4d9ef6ffc5ac1dd">&#9670;&nbsp;</a></span>setDistanceFast()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::detail::tracking::tbm::ITrackerByMatching::setDistanceFast </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#ac0f6285f7029ed0b799c2d7209ab0c7b">Distance</a> &amp;&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Fast distance setter. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Fast distance used in pipeline. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="af7dd2192bd2467af5de97cdcbb65bf9a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7dd2192bd2467af5de97cdcbb65bf9a">&#9670;&nbsp;</a></span>setDistanceStrong()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::detail::tracking::tbm::ITrackerByMatching::setDistanceStrong </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../db/da8/classcv_1_1detail_1_1tracking_1_1tbm_1_1ITrackerByMatching.html#ac0f6285f7029ed0b799c2d7209ab0c7b">Distance</a> &amp;&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Strong distance setter. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Strong distance used in pipeline. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac0d440dabc9e27542f66c13f1cd6a051"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0d440dabc9e27542f66c13f1cd6a051">&#9670;&nbsp;</a></span>setParams()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::detail::tracking::tbm::ITrackerByMatching::setParams </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d7/d92/structcv_1_1detail_1_1tracking_1_1tbm_1_1TrackerParams.html">TrackerParams</a> &amp;&#160;</td>
          <td class="paramname"><em>params</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Pipeline parameters setter. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">params</td><td>Parameters of pipeline. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a7ace2d6c94c0ae94f0361e5166fbd268"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ace2d6c94c0ae94f0361e5166fbd268">&#9670;&nbsp;</a></span>trackedDetections()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="../../dc/d5e/namespacecv_1_1detail_1_1tracking_1_1tbm.html#ab341a7342c7d95812f63c419e53a62b1">TrackedObjects</a> cv::detail::tracking::tbm::ITrackerByMatching::trackedDetections </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get tracked detections. </p>
<dl class="section return"><dt>Returns</dt><dd>Tracked detections. </dd></dl>

</div>
</div>
<a id="abf8286abfce9b6c9db32794a324474c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf8286abfce9b6c9db32794a324474c7">&#9670;&nbsp;</a></span>tracks()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const std::unordered_map&lt;size_t, <a class="el" href="../../d7/d20/classcv_1_1detail_1_1tracking_1_1tbm_1_1Track.html">Track</a>&gt;&amp; cv::detail::tracking::tbm::ITrackerByMatching::tracks </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>tracks Returns all tracks including forgotten (lost too many frames ago). </p>
<dl class="section return"><dt>Returns</dt><dd>Set of tracks {id, track}. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/tracking/<a class="el" href="../../d1/db4/tracking__by__matching_8hpp.html">tracking_by_matching.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:47 for OpenCV by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
